# -*- coding: iso-8859-1 -*-
# file Transform.py
# author Rocco Martino
#
############################################################################
#    Copyright (C) 2015 by Rocco Martino                                   #
#    martinorocco@gmail.com                                                #
#                                                                          #
#    This program is free software; you can redistribute it and/or modify  #
#    it under the terms of the GNU Lesser General Public License as        #
#    published by the Free Software Foundation; either version 2.1 of the  #
#    License, or (at your option) any later version.                       #
#                                                                          #
#    This program is distributed in the hope that it will be useful,       #
#    but WITHOUT ANY WARRANTY; without even the implied warranty of        #
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
#    GNU Lesser General Public License for more details.                   #
#                                                                          #
#    You should have received a copy of the GNU Lesser General Public      #
#    License along with this program; if not, write to the                 #
#    Free Software Foundation, Inc.,                                       #
#    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             #
############################################################################

############################################################################
from . import Group, Geode
from mathutils import Matrix
############################################################################




############################################################################
# ........................................................................ #
# ........................................................................ #
############################################################################




############################################################################
# ........................................................................ #
class Transform(Group.Group):





############################################################################
    CheckScale = True
############################################################################









############################################################################
    def __init__(self, obj, data):
        super(Transform, self).__init__(obj, data)

        self.ClassName = "osg::Transform"
        self.CheckScale = True
############################################################################




############################################################################
    def writeData(self, writer):


        if self.CheckScale:
            is_dynamic = False

            try:
                is_dynamic = self.BlenderObject.material_slots[0].material.game_settings.physics
            except:
                is_dynamic = self.BlenderObject.type == "EMPTY"


            if is_dynamic:
                matrix = Matrix(self.BlenderObject.matrix_world)

                scale = matrix.decompose()[2]

                if scale[0] != 1 or scale[1] != 1 or scale[2] != 1:
                    from . import ScaleTransform
                    self.addChild( ScaleTransform.ScaleTransform(self.BlenderObject, self.Data) )
                else:
                    self.addChild( Geode.Geode(self.BlenderObject, self.Data) )


            else:
                self.addChild( Geode.Geode(self.BlenderObject, self.Data) )




        else:
            self.addChild( Geode.Geode(self.BlenderObject, self.Data) )





        super(Transform, self).writeData(writer)

        writer.writeLine("ReferenceFrame RELATIVE_RF")
############################################################################




# ........................................................................ #
############################################################################
